package procsim;

public class PaintCUOPR extends PaintTab {
    public PaintCUOPR (Paint parent){
        super(parent);
        // Coordinates
        Design.OJO2.addCoords(this, Design.CUOPRAND1.getUpper2Coords(50));
        Design.brOPR2.addCoords(this, Design.CUOPRAND1.getLower2Coords(50));
        Design.CUOPRAND1out.addCoords(this, Design.CUOPRAND1.getResCoords(50));

        Design.PUSH2.addCoords(this, Design.CUOPRAND2.getUpper2Coords(50));
        Design.brOPR2.addCoords(this, Design.CUOPRAND2.getLower2Coords(50));
        Design.CUOPRAND2out.addCoords(this, Design.CUOPRAND2.getResCoords(50));

        Design.JMPIND2.addCoords(this, Design.CUOPRAND3.getUpper2Coords(50));
        Design.brOPR2.addCoords(this, Design.CUOPRAND3.getLower2Coords(50));
        Design.CUOPRAND3out.addCoords(this, Design.CUOPRAND3.getResCoords(50));

        Design.MOVS2.addCoords(this, Design.CUOPRAND4.getUpper2Coords(50));
        Design.brOPR2.addCoords(this, Design.CUOPRAND4.getLower2Coords(50));
        Design.CUOPRAND4out.addCoords(this, Design.CUOPRAND4.getResCoords(50));

        Design.ODO2.addCoords(this, Design.CUOPRAND5.getUpper2Coords(50));
        Design.brOPR2.addCoords(this, Design.CUOPRAND5.getLower2Coords(50));
        Design.CUOPRAND5out.addCoords(this, Design.CUOPRAND5.getResCoords(50));

        Design.CUOPRAND1out.addCoords(this, 50, 156, 100, 156);
        Design.CUOPRAND2out.addCoords(this, 50, 167, 100, 167);
        Design.CUOPRAND3out.addCoords(this, 50, 178, 100, 178);
        Design.CUOPRAND4out.addCoords(this, 50, 189, 100, 189);
        Design.CUOPRAND5out.addCoords(this, 50, 200, 100, 200);

        Design.RTI.addCoords(this, 50, 211, 100, 211);
        Design.RTS.addCoords(this, 50, 222, 100, 222);
        Design.CTRL.addCoords(this, 50, 233, 100, 233);
        Design.JSR.addCoords(this, 50, 244, 100, 244);

        Design.JMP.addCoords(this, 50, 255, 100, 255);
        Design.BNZ.addCoords(this, 50, 266, 100, 266);
        Design.INT.addCoords(this, 50, 277, 100, 277);
        Design.OJO.addCoords(this, 50, 288, 100, 288);

        Design.PUSH.addCoords(this, 50, 299, 100, 299);
        Design.POP.addCoords(this, 50, 310, 100, 310);
        Design.MOVS.addCoords(this, 50, 321, 100, 321);
        Design.MOVD.addCoords(this, 50, 332, 100, 332);

        Design.ODO.addCoords(this, 50, 343, 100, 343);
        Design.JMPIND.addCoords(this, 50, 354, 100, 354);

        Design.NOP.addCoords(this, 50, 365, 100, 365);
        Design.HALT.addCoords(this, 50, 376, 100, 376);

        Design.v34.addCoords(this, 510, 76, 550, 76);
        Design.v3E.addCoords(this, 510, 91, 550, 91);
        Design.v4F.addCoords(this, 510, 106, 550, 106);
        Design.v55.addCoords(this, 510, 121, 550, 121);
        Design.v61.addCoords(this, 510, 136, 550, 136);
        
        Design.v14.addCoords(this, 510, 151, 550, 151);
        Design.v16.addCoords(this, 510, 166, 550, 166);
        Design.v1D.addCoords(this, 510, 181, 550, 181);
        Design.v1F.addCoords(this, 510, 196, 550, 196);
        Design.v24.addCoords(this, 510, 211, 550, 211);
        Design.v28.addCoords(this, 510, 226, 550, 226);
        Design.v2D.addCoords(this, 510, 241, 550, 241);
        Design.v2F.addCoords(this, 510, 256, 550, 256);
        Design.v3C.addCoords(this, 510, 271, 550, 271);
        Design.v45.addCoords(this, 510, 286, 550, 286);
        Design.v53.addCoords(this, 510, 301, 550, 301);
        Design.v59.addCoords(this, 510, 316, 550, 316);
        Design.v5F.addCoords(this, 510, 331, 550, 331);
        Design.v66.addCoords(this, 510, 346, 550, 346);

        Design.vA8.addCoords(this, 510, 361, 550, 361);
        Design.vAA.addCoords(this, 510, 376, 550, 376);

        Design.CUOPRCoderOut0.addCoords(this, 300, 196, 400, 196);
        Design.CUOPRCoderOut0.addCoords(this, 400, 196, 400, 410);
        Design.CUOPRCoderOut0.addCoords(this, 400, 410, 595, 410);
        Design.CUOPRCoderOut0.addCoords(this, 595, 410, 595, 388);

        Design.CUOPRCoderOut1.addCoords(this, 300, 236, 380, 236);
        Design.CUOPRCoderOut1.addCoords(this, 380, 236, 380, 430);
        Design.CUOPRCoderOut1.addCoords(this, 380, 430, 635, 430);
        Design.CUOPRCoderOut1.addCoords(this, 635, 430, 635, 388);

        Design.CUOPRCoderOut2.addCoords(this, 300, 276, 360, 276);
        Design.CUOPRCoderOut2.addCoords(this, 360, 276, 360, 450);
        Design.CUOPRCoderOut2.addCoords(this, 360, 450, 675, 450);
        Design.CUOPRCoderOut2.addCoords(this, 675, 450, 675, 388);

        Design.CUOPRCoderOut3.addCoords(this, 300, 316, 340, 316);
        Design.CUOPRCoderOut3.addCoords(this, 340, 316, 340, 470);
        Design.CUOPRCoderOut3.addCoords(this, 340, 470, 715, 470);
        Design.CUOPRCoderOut3.addCoords(this, 715, 470, 715, 388);

        Design.CUOPRCoderOut4.addCoords(this, 300, 356, 320, 356);
        Design.CUOPRCoderOut4.addCoords(this, 320, 356, 320, 490);
        Design.CUOPRCoderOut4.addCoords(this, 320, 490, 755, 490);
        Design.CUOPRCoderOut4.addCoords(this, 755, 490, 755, 388);

        Design.op.addCoords(this, 796, 214, 830, 214);
        
        // Collections
        elements.add(Design.CUOPRCoder);
        elements.add(Design.CUOPRMP);
        elements.add(Design.CUOPRAND1);
        elements.add(Design.CUOPRAND2);
        elements.add(Design.CUOPRAND3);
        elements.add(Design.CUOPRAND4);
        elements.add(Design.CUOPRAND5);

        lines.add(Design.brOPR2);
        lines.add(Design.OJO2);
        lines.add(Design.PUSH2);
        lines.add(Design.JMPIND2);
        lines.add(Design.MOVS2);
        lines.add(Design.ODO2);
        lines.add(Design.CUOPRAND1out);
        lines.add(Design.CUOPRAND2out);
        lines.add(Design.CUOPRAND3out);
        lines.add(Design.CUOPRAND4out);
        lines.add(Design.CUOPRAND5out);
        lines.add(Design.RTI);
        lines.add(Design.RTS);
        lines.add(Design.CTRL);
        lines.add(Design.JSR);
        lines.add(Design.JMP);
        lines.add(Design.BNZ);
        lines.add(Design.INT);
        lines.add(Design.OJO);
        lines.add(Design.PUSH);
        lines.add(Design.POP);
        lines.add(Design.MOVS);
        lines.add(Design.MOVD);
        lines.add(Design.ODO);
        lines.add(Design.JMPIND);
        lines.add(Design.NOP);
        lines.add(Design.HALT);

        lines.add(Design.CUOPRCoderOut0);
        lines.add(Design.CUOPRCoderOut1);
        lines.add(Design.CUOPRCoderOut2);
        lines.add(Design.CUOPRCoderOut3);
        lines.add(Design.CUOPRCoderOut4);
        
        lines.add(Design.op);

        lines.add(Design.v14);
        lines.add(Design.v16);
        lines.add(Design.v1D);
        lines.add(Design.v1F);
        lines.add(Design.v24);
        lines.add(Design.v28);
        lines.add(Design.v2D);
        lines.add(Design.v2F);
        lines.add(Design.v3C);
        lines.add(Design.v45);
        lines.add(Design.v53);
        lines.add(Design.v59);
        lines.add(Design.v5F);
        lines.add(Design.v66);
        lines.add(Design.vA8);
        lines.add(Design.vAA);
        lines.add(Design.v34);
        lines.add(Design.v3E);
        lines.add(Design.v4F);
        lines.add(Design.v55);
        lines.add(Design.v61);
    }
}
